package com.ereconquista.web;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import com.ereconquista.dao.LocalidadDAO;
import com.ereconquista.modelo.Localidad;
import com.ereconquista.modelo.Provincia;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;

/**
 *
 * @author Claudio
 */
@ManagedBean (name="localidadBean")
@ViewScoped
public class LocalidadBean implements Serializable{

    private LocalidadDAO localidadDAO;
    private List<Localidad> lista;
    private Provincia provincia;


    /** Creates a new instance of LocalidadBean */
    public LocalidadBean() {

    }

    @PostConstruct
    private void init(){
        
        localidadDAO = new LocalidadDAO();
        lista = new ArrayList<Localidad>();
        
    }
    
    public void filtrarLocalidades(Provincia p){
        
        lista = localidadDAO.getLocalidadByProvincia(p);

    }    
    
    public void seleccionarProvincia(Provincia p){
        
        provincia = p;        
    }
    
    public List<Localidad> completeLocalidad(String query) {
        
        if(provincia!=null){
            return localidadDAO.getLocalidadByProvinciaDescripcion(query,provincia);
        }else{
            return localidadDAO.getLocalidadByDescripcion(query);
        }        
    }

    //-------------------------------------------------------------------------

    public List<Localidad> getLista() {
        return lista;
    }

    public void setLista(List<Localidad> lista) {
        this.lista = lista;
    }

    public Provincia getProvincia() {
        return provincia;
    }

    public void setProvincia(Provincia provincia) {
        this.provincia = provincia;
    }
    
    public Converter getConverterLocalidad(){
        
        return new Converter() {

            @Override
            public Object getAsObject(FacesContext context, UIComponent component, String value) {
                if (value.trim().equals("") || value == null) {
                    return null;
                }
                int number = Integer.parseInt(value);
                Localidad l = localidadDAO.getLocalidad(number);
                return l;
            }

            @Override
            public String getAsString(FacesContext context, UIComponent component, Object value) {
                if (value == null || value.equals("")) {
                    return "";
                } else {
                    return ((Localidad) value).getId() + "";
                }
            }
        };
    }


    
}
